const mongoose = require("mongoose");
const config = require("../config");

const dbUrl = `mongodb://${config.dbUrl}:${config.dbPort}`; // 数据库地址
const dbName = `${config.dbName}`; // 数据库名称

/**
 *
 * @param {*} success 连接数据库成功
 * @param {*} error   连接数据库失败
 */
function connectDb(success, error) {
  const address = `${dbUrl}/${dbName}`;
  mongoose.connect(address);

  if(typeof error !== "function") {
    error = (err) => {
        console.log(`error【未定义】: ${err}`)
    }
  }

  // 断线重连，回调 once 只执行一次，on 每次都执行。
  mongoose.connection.once("open", () => {
    console.log("连接成功");
    success();
  });

  mongoose.connection.on("close", (err) => {
    console.log("连接关闭");
    error && error(err);
  });

  mongoose.connection.on("error", (err) => {
    console.log("连接异常");
    error && error(err);
  });
};

module.exports = {
    connectDb
}